package com.zhijian.warehouse.manage.entity.vo.request;

import com.zhijian.entity.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 产品 查询条件vo
 *
 * @author auto
 * @version 1.0
 * @date 2024-10-12 16:56:24
 */
@Data
@Api(tags = "产品查询条件vo")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductSearchVo extends PageVo implements Serializable {

    private static final long serialVersionUID = -1;

    /**
     * 排除id
     */
    @ApiModelProperty(value = "排除id", hidden = true)
    private Long notId;

    /**
     * 编码
     */
    @ApiModelProperty("编码")
    private String number;
    
    @ApiModelProperty("编码或者名称模糊查询")
    private String numberOrNameDim;

    /**
     * 名称精确
     */
    @ApiModelProperty("名称精确")
    private String nameAccurate;

    /**
     * 名称
     */
    @ApiModelProperty("名称")
    private String name;

    /**
     * 品类ID
     */
    @ApiModelProperty("品类ID")
    private Long categoryId;

    /**
     * 单位ID
     */
    @ApiModelProperty("单位ID")
    private Long unitId;

    /**
     * 仓库ID
     */
    @ApiModelProperty("仓库ID")
    private Long warehouseId;

    /**
     * 发卡状态，1：已发卡，0：未发卡
     */
    @ApiModelProperty("发卡状态，1：已发卡，0：未发卡")
    @Deprecated
    private Byte cardStatus;

    /**
     * 领用状态，1：已领用，0：在库
     */
    @ApiModelProperty("领用状态，1：已领用，0：在库")
    private Byte useStatus;

    /**
     * 状态，1：正常，2：故障，3：作废
     */
    @ApiModelProperty("状态，1：正常，2：故障，3：作废")
    private Byte status;

    /**
     * RFID编码
     */
    @ApiModelProperty("RFID编码")
    private String rfId;

    private String rfIdDim;

    /**
     * 条码
     */
    @ApiModelProperty("条码")
    private String barCode;


    /**
     * RFID 绑定状态 0 = 未绑定 1 = 已绑定
     */
    @ApiModelProperty("RFID 绑定状态 0 = 未绑定 1 = 已绑定")
    private Integer rfStatus;

    /**
     * 是否删除
     */
    @ApiModelProperty("是否删除 0 = 未删除 1 = 已删除")
    private Integer isDelete;

    /**
     * 状态，1：启用，0：禁用
     */
    @ApiModelProperty("条码 绑定状态，0：未绑定 1 ：绑定")
    private Integer barCodeStatus;
    
    private String productNameDim;
    private String productNumberDim;

}
